"""
实现一个简单的命令行计算器，可以进行简单的加减乘除的运算
"""
from functools import reduce

# 命令行计算器
numbers = []
# 加法
def add():
    return sum(numbers)#sum()函数可以计算列表中所有元素的和
# 减法
def sub():
    return numbers[0] - sum(numbers[1:])
# 乘法
def mul():
    return reduce(lambda x, y: x * y, numbers)#reduce()函数可以将列表中的所有元素进行乘法运算
# 除法
def div(x,y):
    if y == 0:
        return "除数不能为0"
    return x / y
# 主函数
def main():
    while True:
        print("Operations: 1.add, 2.sub, 3.mul, 4.div, 5.exit")
        operation = input("请输入操作：")
        if operation == "1":
            while True:
                num = input("请输入数字，输入完毕后输入stop结束：")
                if num == "stop":
                    break
                else:
                    numbers.append(float(num))
            print("结果为：", add())
            numbers.clear()
        elif operation == "2":
            while True:
                num = input("请输入数字，输入完毕后输入stop结束：")
                if num == "stop":
                    break
                else:
                    numbers.append(float(num))
            print("结果为：", sub())
            numbers.clear()
        elif operation == "3":
            while True:
                num = input("请输入数字，输入完毕后输入stop结束：")
                if num == "stop":
                    break
                else:
                    numbers.append(float(num))
            print("结果为：", mul())
            numbers.clear()
        elif operation == "4":
            num1 = float(input("请输入被除数："))
            num2 = float(input("请输入除数："))
            if num2 == 0:
                print("除数不能为0")
            print("结果为：", div(num1,num2))
            numbers.clear()
        elif operation == "5":
            print("Exiting")
            break
        else:
            print("输入错误，请重新输入")
if __name__ == '__main__':
    main()